part of '../button.dart';

/// 常规的文字按钮
class LxTextButton extends StatelessWidget {
  final String text;

  /// 这里如果不输入，则无法覆盖字体颜色
  final TextStyle style;

  /// 不仅是字体，并且荧光颜色也需要指定
  /// 如果不指定颜色，则分配一个默认颜色
  final Color color;
  final VoidCallback? onClick;
  final VoidCallback? onLongClick;
  final TextAlign? textAlign;
  const LxTextButton(
    this.text, {
    required this.style,
    this.color = COLOR.white,
    this.textAlign,
    required this.onClick,
    this.onLongClick,
    super.key,
  });

  @override
  Widget build(BuildContext context) {
    return LxClickable(
      onClick: onClick,
      onLongClick: onLongClick,
      builder: (ctrl) {
        // 当鼠标覆盖时，按钮会向上浮动一点点
        return Transform.translate(
          offset: Offset(0, -ctrl.valueRush * 2),
          // 并且会有荧光效果
          child: LxShadowVFX(
            blur: 0 + ctrl.valueRush * 4,
            color: color,
            child: Text(
              text,
              textAlign: textAlign,
              // 文字的字样和荧光颜色一致
              style: style.copyWith(color: color),
            ),
          ),
        );
      },
    );
  }
}
